package TestExercises06;

//IO流

import java.awt.*;
import java.io.*;
import java.util.Scanner;
import java.util.concurrent.CountDownLatch;

/*
 需求:写一个登陆小案例。

 步骤:
    将正确的用户名和密码手动保存在本地的userinfo.txt文件中。
    保存格式为:username=zhangsan&password=123&count=0
    让用户键盘录入用户名和密码
              比较用户录入的和正确的用户名密码是否一致
    如果一致则打印登陆成功
              如果不一致则打印登陆失败，连续输错三次被锁定
*/
public class Test04 {
    public static void main(String[] args) throws IOException {

        //1、读取正确的用户名和密码
        BufferedReader br = new BufferedReader(new FileReader("D:\\工作\\工作\\src\\userinfo.txt"));
        String line = br.readLine();
        String[] userInfo = line.split("&");
        String[] arr0 = userInfo[0].split("=");
        String[] arr1 = userInfo[1].split("=");
        String[] arr2 = userInfo[2].split("=");

        String rightUsername = arr0[1];
        String rightPassword = arr1[1];
        //count:表示用户连续输错的次数
        int count = Integer.parseInt(arr2[1]);

        //2、用户键盘录入用户名和密码
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名：");
        String username = sc.next();
        System.out.println("请输入密码：");
        String password = sc.next();

        //3、比较
        if (username.equals(rightUsername) && password.equals(rightPassword) && count < 3) {
            System.out.println("登陆成功");
            writeInfo("username=" + rightUsername + "&password=" + rightPassword + "&count=0");
        } else {
            count++;
            if (count < 3) {
                System.out.println("登录失败，还剩下" + (3 - count) + "次机会");
            } else {
                System.out.println("用户账号锁定");
            }
            writeInfo("username=" + rightUsername + "&password=" + rightPassword + "&count=" + count);
        }
    }

    /*
     作用：写出一个字符串到本地文件中
     参数：要写出的字符串
     */
    public static void writeInfo(String content) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\工作\\工作\\src\\userinfo.txt"));
        bw.write(content);
        bw.close();
    }
}
